Technote 1095

Object Support Library Version History


ñ⁄éü


OSL ÇÃÇÕÇ∂Ç‹ÇË

ÇÕǡǴÇËÇÌǩǡǃǢÇÈDZÇΔ

DZÇÍÇ‹Ç≈Ç…ïÒçêÇ≥ÇÍǃǢÇÈ OSL ÇÃÉoÉO

OSL 1.2 ÇÃÉ_ÉEÉìÉçÅ[Éh
DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅAApple Çà OSL (Object Support Library) ÇÃÉoÅ[ÉWÉáÉìóöóDžǬǢǃê‡ñæÇµÇ‹Ç∑ÅBDZÇÃÉâÉCÉuÉâÉäÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ OSA (Open Scripting Architecture) ÉIÉuÉWÉFÉNÉgÉÇÉfÉãÇÉTÉ|Å[ÉgÇ∑ÇÈÇΩÇflÇ…égópÇ∑ÇÈDZÇΔÇÃÇ≈Ç´ÇÈÉãÅ[É`ÉìÇíÒãüǵNjÇ∑ÅB

OSL ÇÕLJÇΔLJÇΔ 68K ÇÃÉXÉ^ÉeÉBÉbÉNÉâÉCÉuÉâÉäÇΔǵǃÉäÉäÅ[ÉXÇ≥ÇÍNjǵÇΩÅBPower Macintosh ÉVÉXÉeÉÄÇÃì±ì¸ÇΔÇΔLJDžÅAOSL ÇÕã§óLÉâÉCÉuÉâÉäÇΔǵǃçƒÉpÉbÉPÅ[ÉWâªÇ≥ÇÍNjǵÇΩÅBCode Fragment Manager 68K Runtime Enabler (CFM-68K) Ç™ÉäÉäÅ[ÉXÇ≥ÇÍÇΩÇΔÇ´ÅAOSL Çà Power PC Ç®ÇÊÇ— CFM-68K ÉoÅ[ÉWÉáÉìÇÃóºï˚Çä‹ÇfiÉtÉ@ÉbÉgÉâÉCÉuÉâÉäÇ…Ç»ÇËNjǵÇΩÅB

DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅAåªç›égópâ¬î\Ç» OSL ÇÃÇ∑Ç◊ǃÇÃÉoÅ[ÉWÉáÉìÇdžÇ∞ÅAǪÇÍǺÇÍÇÃÉoÅ[ÉWÉáÉìDžǬǢǃä»íPÇ»óöóÇΔê‡ñæÇé¶ÇµÇ‹Ç∑ÅBÇ‹ÇΩÅAÇ«ÇÃÉoÅ[ÉWÉáÉìÇégópÇ∑ÇÍnjǢǢǩ (Ç‹ÇΩÇÕégópÇ∑Ç◊Ç´Ç≈ÇÕǻǢǩ) LJé¶ÇµÇ‹Ç∑ÅB

OSA ÉIÉuÉWÉFÉNÉgÉÇÉfÉãÇÃÉTÉ|Å[ÉgÇíÒãüÇ∑ÇÈ Macintosh ÉAÉvÉäÉPÅ[ÉVÉáÉìÇäJî≠ǵǃǢÇÈèÍçáÇ‚ÅAǪǧǵÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìÇégópÇ∑ÇÈïKóvǙdžÇÈèÍçáÇÕÅADZÇà ÉeÉNÉjÉJÉãÉmÅ[ÉgÇéQçlDžǵǃÇ≠ÇæÇ≥Ç¢ÅB


OSL ÇÃÇÕÇ∂Ç‹ÇË
OSL Ç™ç≈èâÇ…ÉäÉäÅ[ÉXÇ≥ÇÍÇΩÇΔÇ´ÅAǪÇÍÇÕÅAOSA ÉIÉuÉWÉFÉNÉgÉÇÉfÉãÇÉTÉ|Å[ÉgÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ê√ìIÇ…ÉäÉìÉNÇ≥ÇÍÇÈ 68K ÉXÉ^ÉeÉBÉbÉNÉâÉCÉuÉâÉä (AEObjectSupportLib.o) Ç≈ǵÇΩÅBDZÇÃDZÇΔÇÕÅAÉNÉâÉVÉbÉN 68K ÉAÉvÉäÉPÅ[ÉVÉáÉìDžǬǢǃÇÕåªç›Ç≈LJìØÇ∂Ç≈Ç∑ÅB

Power Macintosh ÇΔǪÇÍÇ…î∫ǧ CFM ã§óLÉâÉCÉuÉâÉäÉAÉvÉäÉPÅ[ÉVÉáÉìÉÇÉfÉãÇÃÉäÉäÅ[ÉXÇΔÇΔLJDžÅA'.o' ÉtÉ@ÉCÉãÇ≈ÇÕÇ»Ç≠ÅAOSL ÇÃã§óLÉâÉCÉuÉâÉäÉoÅ[ÉWÉáÉìÇ Power PC ÉlÉCÉeÉBÉuÉAÉvÉäÉPÅ[ÉVÉáÉìópÇ…íÒãüÇ∑ÇÈDZÇΔÇ™åàíËÇ≥ÇÍNjǵÇΩÅBDZÇÍÇ…ÇÊÇËÅAÉlÉCÉeÉBÉuÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕã§óLÉâÉCÉuÉâÉäÉAÉvÉäÉPÅ[ÉVÉáÉìÉÇÉfÉãÇóòópÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅB

OSL PowerPC ã§óLÉâÉCÉuÉâÉäÇÕÉoÅ[ÉWÉáÉì 1.0.2 ÇΔǵǃÉäÉäÅ[ÉXÇ≥ÇÍNjǵÇΩÅBDZÇÍÇÕÅAç≈èâÇà Power Macintosh ÉVÉXÉeÉÄÉ\ÉtÉgÉEÉFÉA (ÉoÅ[ÉWÉáÉì 7.1.2) ÇΔ AppleScript SDK ÉoÅ[ÉWÉáÉì 1.1 Ç…ìYïtÇ≥ÇÍǃǢNjǵÇΩÅBDZÇÃÉoÅ[ÉWÉáÉìÇÕÅAåªç›Ç≈LJÅAMac OS SDK CD Ç…é˚ò^Ç≥ÇÍǃǢNjÇ∑ÅBOSL ÇÃDZÇÃÉoÅ[ÉWÉáÉìÇ≈ÇÕÅAwhose ÉNÉçÅ[ÉYÇÃéÊÇËàµÇ¢Ç…ä÷ǵǃǢÇ≠ǬǩÇÃÉoÉOÇ™ïÒçêÇ≥ÇÍǃǢNjÇ∑ (DZÇÍÇÁÇÃÉoÉOÇÃè⁄ç◊DžǬǢǃÇÕÅADZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÃÅuDZÇÍÇ‹Ç≈Ç…ïÒçêÇ≥ÇÍǃǢÇÈ OSL ÇÃÉoÉOÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅB

DZÇÃç≈èâÇÃã§óLÉâÉCÉuÉâÉäÇ…ÇÊÇËÅAOSL ã§óLÉâÉCÉuÉâÉäÇÃç≈èâÇÃñ‚ëËÇ™ñæÇÁǩDžǻÇËNjǵÇΩÅBOSL ÇÕ Pascal Ç≈èëÇ©ÇÍǃǢNjǵÇΩÇ™ÅAPowerPC ëŒâûÇà Pascal ÉRÉìÉpÉCÉâÇÕë∂ç›ÇµÇ‹ÇπÇÒÇ≈ǵÇΩÅBDZÇÃÇΩÇflÅADZÇÃÉoÅ[ÉWÉáÉìÇ…ÇÕÅAOSL Çä‹Çfi 68K ÉRÅ[ÉhÉäÉ\Å[ÉXÇÉçÅ[ÉhÇ∑ÇÈè¨Ç≥Ç» PowerPC ÉlÉCÉeÉBÉuÉâÉCÉuÉâÉäÇ™ä‹Ç‹ÇÍǃǢNjǵÇΩÅB

ǵǩǵÅADZÇÃÉçÅ[ÉhÇÕìKêÿÇ…é¿çsÇ≥ÇÍÇ‹ÇπÇÒÇ≈ǵÇΩÅBObjectSupportLib ÇÃÉäÉ\Å[ÉXÉtÉ@ÉCÉãÇÕÅAǵnjǵnjÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉäÉ\Å[ÉXÉ`ÉFÅ[ÉìÇÃíÜÇ…ì¸Ç¡ÇƒÇµÇ‹Ç¢Ç‹ÇµÇΩÅBDZÇÃñ‚ëËÇÕÅAÉXÉ^Å[ÉgÉAÉbÉvéûÇ… Finder Ç… OSL ÇÉçÅ[ÉhÇ≥ÇπÇÈDZÇΔÇ…ÇÊǡǃÅASystem 7.5.2 Ç≈âè¡Ç≥ÇÍNjǵÇΩÅBǪÇÃåãâ ÅAOSL ÇÃÉäÉ\Å[ÉXÉtÉ@ÉCÉãÇÕÅAã≠êßìIÇ…ÉVÉXÉeÉÄÇ…ÉçÅ[ÉhÇ≥ÇÍÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBOSL ÇÃÉäÉ\Å[ÉXÉtÉ@ÉCÉãÇÕÉVÉXÉeÉÄÇ…ÇÕè·äQÇó^ǶNjÇπÇÒÅBDZǧǵÇΩëŒèàï˚ñ@Ç…ÇÊÇËÅA7.5.2 à»ç~ÇÃÇ∑Ç◊ǃÇÃÉVÉXÉeÉÄÉoÅ[ÉWÉáÉìÇ≈ÅADZÇÃñ‚ëËÇÕâè¡Ç≥ÇÍNjǵÇΩÅBÇΩÇæÇµÅAǪÇÍà»ëOÇÃÉVÉXÉeÉÄÉoÅ[ÉWÉáÉìÇ≈ÇÕDZÇÃñ‚ëËÇÕç°Ç≈LJë∂ç›ÇµÇ‹Ç∑ÅB

Power Macintosh ÇÃì±ì¸å„ÅAOSL ÇÃÉ\Å[ÉXÉRÅ[ÉhÇ Pascal Ç©ÇÁ C Ç…èëÇ´ä∑ǶÇÈçÏãΔÇ™äJénÇ≥ÇÍNjǵÇΩÅBDZÇÃèëÇ´ä∑ǶÇÕÅAPowerPC Ç®ÇÊÇ— CFM-68K ÉRÅ[ÉhÇÃóºï˚Çä‹Çfiã§óLÉâÉCÉuÉâÉäÇíÒãüÇ∑ÇÈÇΩÇflÇ…ÇÕǫǧǵǃLJïKóvÇ»çÏãΔÇ≈ǵÇΩÅBèëÇ´ä∑ǶÇÁÇÍÇΩÉtÉ@ÉbÉg OSL ÇÕÅAÉoÅ[ÉWÉáÉì 1.0.4 ÇΔǵǃÉäÉäÅ[ÉXÇ≥ÇÍNjǵÇΩÅBDZÇÍÇÕÅAǬǢç≈ãflÇ‹Ç≈ÅAE.T.O. Çà CD-ROM ÉäÉäÅ[ÉXÇ…é˚ò^Ç≥ÇÍǃǢNjǵÇΩÅB

ǵǩǵǻǙÇÁÅAOSL ÇÃDZÇÃÉoÅ[ÉWÉáÉìÇ…ÇÕÇ¢Ç≠ǬǩÇÃñ‚ëËǙdžÇËNjǵÇΩÅBǪÇÃíÜÇ≈LJç≈à´Ç»ñ‚ëËÇÕÅAÉoÅ[ÉWÉáÉì 1.0.2 Ç≈ÇÕÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍÇΩ Gestalt ÉZÉåÉNÉ^Ç™ÉoÅ[ÉWÉáÉì 1.0.4 Ç≈ÇÕÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǻǩǡÇΩDZÇΔÇ≈Ç∑ÅBDZÇÃÇΩÇflÅADZÇà Gestalt ÉZÉåÉNÉ^ÇÉeÉXÉgǵǃǢÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ OSL ã§óLÉâÉCÉuÉâÉäÇÃë∂ç›ÇåüèoÇ≈Ç´Ç»Ç≠ǻǡǃǵNjǢNjǵÇΩÅB

íçà”: Gestalt ÉZÉåÉNÉ^ÇÕÅAOSL ÇÃë∂ç›ÇåüèoÇ∑ÇÈÇΩÇflÇÃç≈ëPÇÃï˚ñ@Ç≈ÇÕdžÇËÇ‹ÇπÇÒÇ™ÅADZÇÃîªíËï˚ñ@ÇÕÅAÉRÅ[ÉhÉtÉâÉOÉÅÉìÉgÉÇÉfÉãÇÃäJî≠Ç…Ç®ÇØÇÈèâä˙íiäKÇ©ÇÁçÃópÇ≥ÇÍǃǢÇΩLJÇÃÇ≈džÇËÅAìñéûÇÕÇ‹Çæ Gestalt ÇégópÇ∑ÇÈDZÇΔÇÃêMóäê´Ç™è\ï™Ç…ÇÕóùâÇ≥ÇÍǃǢNjÇπÇÒÇ≈ǵÇΩÅBÇÊÇËñ]NjǵǢï˚ñ@ÇÕÅAÉâÉCÉuÉâÉäÇ…ä‹Ç‹ÇÍÇÈÉVÉìÉ{ÉãÇ kUnresolvedCFragSymbolAddress ÇΔî‰ärÇ∑ÇÈDZÇΔÇ≈Ç∑ (DZÇÃÉvÉçÉZÉXÇÃè⁄ç◊DžǬǢǃÇÕÅAÅuTechnote 1083: Code Fragment Manager ÉxÅ[ÉXÇÃã§óLÉâÉCÉuÉâÉäÇ÷ÇÃé„Ç¢ÉäÉìÉN (Weak-link)ÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅB

OSL ÇÃDZÇÃÉoÅ[ÉWÉáÉìDžǩǩÇÌÇÈǪÇÃëºÇÃéÂóvÇ»ñ‚ëËÇΔǢǶnjÅAwhose ÉNÉçÅ[ÉYÇéÊÇËàµÇ§ÉRÅ[ÉhÇÃíÜÇ…Ç¢Ç≠ǬǩÇÃÉoÉOǙdžǡÇΩDZÇΔÇ≈Ç∑ (ëOèqÇÃÉoÉOÇ…â¡Ç¶Çƒ)ÅBDZÇÍÇÁÇÃÉoÉOÇÕÅAóLå¯Ç»ÉäÉNÉGÉXÉgÇíÒé¶Ç≥ÇÍǃLJÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ïsê≥Ç»åãâ Ç‚ïsê≥Ç»ÉGÉâÅ[ÉÅÉbÉZÅ[ÉWÇï‘Ç∑å¥àˆÇ…ǻǡǃǢNjǵÇΩÅBGestalt ÉZÉåÉNÉ^ǙǻÇ≠ǃÅADZÇÃÉoÅ[ÉWÉáÉìÇégópÇ≈ǴǻǩǡÇΩÇΩÇflÅAwhose ÉNÉçÅ[ÉYÇÃéÊÇËàµÇ¢Ç…ä÷Ç∑ÇÈÉoÉOÇÕÅAǩǻÇËå„Ç…Ç»ÇÈÇ‹Ç≈ǪÇÃë∂ç›Ç™ñæÇÁÇ©Ç≈ÇÕdžÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅB


ÉRÅ[ÉhÇÃïœçXÇ≈ÇÕÇ»Ç≠ÅAíPÇ»ÇÈÉoÅ[ÉWÉáÉìî‘çÜÇÃïœçX
ÉoÅ[ÉWÉáÉì 1.0.2 Ç©ÇÁ 1.0.4 ÇÃä‘ÇÃǫDZǩÇ≈ÅAAppleScript 1.1 SDK Ç…ëŒâûÇ∑ÇÈÉrÉãÉhÉvÉçÉZÉXÇ…åÎÇËǙdžÇËÅAOSL ÇÃÉoÅ[ÉWÉáÉì 1.0.2 Ç™ÉoÅ[ÉWÉáÉì 1.1 ÇΔǵǃÉäÉäÅ[ÉXÇ≥ÇÍÇÈDZÇΔDžǻǡǃǵNjǢNjǵÇΩÅBDZÇÍÇÁ 2 ǬÇÃÉoÅ[ÉWÉáÉìÇ≈ÇÕé¿ç€ÇÃÉRÅ[ÉhÇÃà·Ç¢ÇÕdžÇËÇ‹ÇπÇÒÅBêVǵǢÉoÅ[ÉWÉáÉìî‘çÜÇ™ïtÇØÇÁÇÍǃǢÇÈÇæÇØÇ≈Ç∑ÅB

DZÇÍÇ…ÇÊÇËÅAé¿ç€Ç…ÇÕÉoÅ[ÉWÉáÉì 1.0.4 ÇÊÇËLJå√Ç¢ÉXÉeÅ[É^ÉXDždžÇÈ 1.1 ÉoÅ[ÉWÉáÉìÇ™ìoèÍǵÇΩDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB1.1 ÇÃè„Ç… 1.0.4 ÇÉCÉìÉXÉgÅ[ÉãǵÇÊǧÇΔÇ∑ÇÈÇΔÅAÉCÉìÉXÉgÅ[ÉâÇ©ÇÁå√Ç¢ÉoÅ[ÉWÉáÉìÇ≈êVǵǢÉoÅ[ÉWÉáÉìÇè„èëǴǵÇÊǧÇΔǵǃǢÇÈÇΔǢǧÉÅÉbÉZÅ[ÉWÇ™ï\é¶Ç≥ÇÍǃǵNjǢNjÇ∑ÅBDZÇÃÇΩÇflÅAApple Ç≈ÇÕÅAOSL Çà Apple Telecom É\ÉtÉgÉEÉFÉAÉoÅ[ÉWÉáÉìÇèoâ◊ǵNjǵÇΩÅBDZÇÍÇÕÅA1.0.4 Ç 1.1.1 Ç…ïœçXǵÇΩLJÇÃÇ≈Ç∑ÅBǪÇÃåãâ ÅAÉCÉìÉXÉgÅ[ÉâÇ≈ÇÕêVǵǢÉoÅ[ÉWÉáÉìÇégǡǃå√Ç¢ÉoÅ[ÉWÉáÉìÇè„èëÇ´Ç≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅBÇΩÇæÇµÅADZÇÃèÍçáLJÉRÅ[ÉhÇ…ïœçXÇÕÇ»Ç≠ÅAÉoÅ[ÉWÉáÉìî‘çÜÇïœçXǵÇΩÇ…Ç∑ǨNjÇπÇÒÇ≈ǵÇΩ (Ç‡ÇøÇÎÇÒÅA1.0.4 ÇÃñ‚ëËì_ÇÕÇ∑Ç◊ǃǪÇÃNjNjécÇ≥ÇÍǃǢNjǵÇΩ)ÅB

DZDZǙä‘à·Ç¢ÇÃénÇ‹ÇËÇ≈ǵÇΩÅBǬNjÇËÅA(àÍî Ç…ÇÕ) ǧNjÇ≠ìÆçÏÇ∑ÇÈÉoÅ[ÉWÉáÉì 1.1 Ç™ïsó«Ç»ÉoÅ[ÉWÉáÉìÇ≈džÇÈ 1.1.1 Ç…íuÇ´ä∑ǶÇÁÇÍÇÈèÛãµÇ…ǻǡǃǵNjǢNjǵÇΩÅB


ÉoÉOÇÉtÉBÉbÉNÉXÇ∑ÇÈÇΩÇflÇÃóEä∏Ç»ééÇ›
DZÇÃéûì_Ç≈ÅAAppleScript É`Å[ÉÄÇÕÅAéñë‘ÇëOêiÇ≥ÇπÅAñ‚ëËÇÉtÉBÉbÉNÉXÇ≥ÇπÇÈçDã@Ç≈džÇÈÇΔîªífǵNjǵÇΩÅBîfiÇÁÇÕÅAGestalt ÉZÉåÉNÉ^ÇÃñ‚ëËÇâåàǵÇΩÉoÅ[ÉWÉáÉìÇÉäÉäÅ[ÉXǵÅADZÇÍÇ 1.1.1 ÇΔåƒÇ—NjǵÇΩÅBǵǩǵÅAíNLJ Apple Telecom OSL ÉoÅ[ÉWÉáÉì 1.1.1 ÇÃDZÇΔÇîfiÇÁÇ…ímÇÁÇπǃǮÇÁÇ∏ÅAǪÇÃåãâ ÅAîfiÇÁÇÕDZÇÃÉoÅ[ÉWÉáÉìÇ 1.1.2 Ç…ïœçXǵNjǵÇΩÅBǵǩǵNjÇΩǵǃLJÅAíNÇ©ï ÇÃêlä‘Ç™ OSL ÉoÅ[ÉWÉáÉì 1.1.2 ÇÃå¿íËÉäÉäÅ[ÉXÇÇ∑Ç≈Ç…çsǡǃǢNjǵÇΩÅB

DZÇÍÇÕïsçKǻDZÇΔÇ≈ǵÇΩÇ™ÅAǪÇÍÇŸÇ«ëÂÇ´Ç»ñ‚ëËÇ≈ÇÕdžÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅBAppleScript É`Å[ÉÄÇÕÅAÉoÅ[ÉWÉáÉìÇÇ∑ÇÆÇ… 1.1.3 Ç…è„Ç∞NjǵÇΩÅBDZÇÃÉoÅ[ÉWÉáÉìÇÕÅAèCê≥Ç≥ÇÍÇΩ Gestalt ÉZÉåÉNÉ^Çä‹ÇÒÇ≈Ç®ÇËÅAÉfÉxÉçÉbÉpå¸ÇØÇÃå¿íËÉoÅ[ÉWÉáÉìÇΔǵǃÉäÉäÅ[ÉXÇ≥ÇÍNjǵÇΩÅBDZÇÍÇ≈ÇÊǧǂÇ≠ÅAGestalt ÉZÉåÉNÉ^ÇÃÉoÉOÇÃÇΩÇflÇ… OSL ÇÉçÅ[ÉhÇ≈ǴǻǩǡÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ OSL ÇégópÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅBǵǩǵÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ OSL ÇÉçÅ[ÉhÇ≈Ç´ÇÈÇÊǧDžǻÇÈÇΔÅAOSL Ç™ whose ÉNÉçÅ[ÉYÇìKêÿÇ…éÊÇËàµÇ§Ç±ÇΔÇ™Ç≈ǴǻǢDZÇΔÇ…ãNàˆÇ∑ÇÈÇ≥NjǥNjǻïsãÔçáÇ™ñæÇÈǛDžèoÇÈDZÇΔÇ…Ç»ÇËNjǵÇΩ (Gestalt ÇÃÉoÉOÇ™ÉtÉBÉbÉNÉXÇ≥ÇÍÇÈÇ‹Ç≈ÅADZÇÃÉRÅ[ÉhÇé¿ç€Ç…é¿çsǵÇΩêlÇÕǢǻǩǡÇΩÇΩÇflÇ≈Ç∑)ÅB


åvâÊíiäKÇ÷ÇÃãtñflÇË
AppleScript É`Å[ÉÄÇÕÅA1.0.4/1.1.1 ÇÃÉRÅ[ÉhÉXÉgÉäÅ[ÉÄÇè⁄ç◊Ç…å©íºÇ∑DZÇΔÇäJénǵÅAèCê≥Ç™ä˘ë∂ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃà¿íËê´Ç…ó^ǶÇÈâeãøÇåüì¢ÇµÇΩåãâ ÅAè´óàÉgÉâÉuÉãÇ™î≠ê∂Ç∑ÇÈÉäÉXÉNÇ™ã…ÇflǃëÂÇ´Ç¢ÇΔîªífǵNjǵÇΩÅBDZÇÃåàíËÇ…ÇÊÇËÅAOSL ÇÃéüÇÃÉäÉäÅ[ÉXÇäJî≠Ç∑ÇÈÇΩÇflÇ…ÅAÇÊÇËå√Ç¢ 1.0.2/1.1 ÇÃÉRÅ[ÉhÉXÉgÉäÅ[ÉÄÇ…ñflÇÈDZÇΔÇ…Ç»ÇËNjǵÇΩÅB

ǪÇÃåãâ ÅAÉoÅ[ÉWÉáÉì 1.0.2 ÇÃÉäÉ\Å[ÉXÇÉçÅ[ÉhÇ∑ÇÈÉ\Å[ÉXÉXÉgÉäÅ[ÉÄÇ™ÅAÉlÉCÉeÉBÉu PowerPC Ç®ÇÊÇ— CFM-68K ÉâÉCÉuÉâÉäÇΔǵǃÉRÉìÉpÉCÉãÇ≈Ç´ÇÈÇÊǧDžèCê≥Ç≥ÇÍNjǵÇΩÅBÉäÉ\Å[ÉXÉçÅ[ÉhÇÃÉoÉOLJñ‚ëËÇÃèäç›Ç™ñæÇÁǩDžǻÇËNjǵÇΩÅBDZÇÃâ¸í˘Ç≥ÇÍÇΩÉâÉCÉuÉâÉäÇÕÉeÉXÉgÇ≥ÇÍÅAÇ≥ÇÁÇ…ÉeÉXÉgÇë±ÇØÇÈÇΩÇflÇ…ÅAÇ≤Ç≠àÍïîÇÃÉfÉxÉçÉbÉpÇÃÉOÉãÅ[ÉvÇ…ëóÇÁÇÍNjǵÇΩÅBǪǵǃÅAç≈èIìIÇ»ÉrÉãÉhÇ™ÉoÅ[ÉWÉáÉì 1.1.4 ÇΔǵǃè≥îFÇ≥ÇÍNjǵÇΩÅB

ǪǧDZǧÇ∑ÇÈÇ§ÇøÇ…ÅADZÇÃÉXÉgÅ[ÉäÅ[Ç…í«â¡Ç∑Ç◊Ç´êVǵǢìÆÇ´Ç™Ç†ÇËNjǵÇΩÅBMac OS ÇÃÉäÉtÉ@ÉåÉìÉXÉäÉäÅ[ÉXêÌó™Ç…çáÇÌÇπǃÅAÉtÉ@ÉCÉãÇÃÉNÉäÉGÅ[É^É^ÉCÉvÇ…ïœçXÇ™â¡Ç¶ÇÁÇÍÅAìØéûÇ…ÉoÅ[ÉWÉáÉìî‘çÜLJ 1.1.6 Ç…ïœçXÇ≥ÇÍNjǵÇΩÅB

íçà”:
ÉoÅ[ÉWÉáÉì 1.1.4 ÇÕÅADeveloper CD Series ÇΔ Mac OS SDK CD Ç…é˚ò^Ç≥ÇÍǃǮÇËÅAàÍï˚ÅAÉoÅ[ÉWÉáÉì 1.1.6 ÇÕàÍïîÇà E.T.O. CD Ç…é˚ò^Ç≥ÇÍǃǢNjÇ∑ÅB



ǵǩǵÅADZÇÃÉXÉgÅ[ÉäÅ[Ç…ÇÕÇ≥ÇÁÇ…ïtÇØâ¡Ç¶ÇÈÇ◊ǴDZÇΔǙdžÇËÇ‹Ç∑ÅBOSL ÇåüèÿÇ∑ÇÈÇΩÇflÇ…égópÇ≥ÇÍÇΩÉeÉXÉgÉXÉCÅ[ÉgÇÕ Gestalt ÉZÉåÉNÉ^ÇÃë∂ç›ÇÉeÉXÉgǵNjǵÇΩÇ™ÅAǪÇÍÇ™ìKêÿÇ…ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈǩǫǧǩÇîªíËǵNjÇπÇÒÇ≈ǵÇΩÅBäÓñ{ìIÇ…ÅAÉlÉCÉeÉBÉu OSL ÉäÉ\Å[ÉXÉçÅ[ÉfÉBÉìÉOÉRÅ[ÉhÇÕÅAǪÇà Gestalt ÉZÉåÉNÉ^ÇÉCÉìÉXÉgÅ[ÉãǵÇΩÇΔÇ´Ç…ìKêÿÇ»ìÆçÏÇÇπÇ∏ÅAǪÇÃåãâ ÅAàÍíËÇÃèÛãµÇ≈ÉNÉâÉbÉVÉÖÇÃå¥àˆÇ…ǻǡǃǢNjǵÇΩÅB

ǪÇÃä‘Ç…ÅAÉoÅ[ÉWÉáÉì 1.1.6 ÇÕÅAÉfÉxÉçÉbÉpÇ…îzïzÇ≥ÇÍÇΩ Harmony (Mac OS 7.6) f3 ÉrÉãÉhÇÃàÍïîÇΔǵǃëgÇ›çûÇ‹ÇÍNjǵÇΩÅBDZÇÃç≈êVÇà OSL ÇÃñ‚ëËÇ™ñæÇÁǩDžǻǡÇΩÇΔÇ´ÅAOSL ÇÃÉoÅ[ÉWÉáÉì 1.0.2 ÇçÃópǵÅAǪÇÍÇâ¸í˘ÇµÇƒÉoÅ[ÉWÉáÉì 1.1.8 ÇΔÇ∑ÇÈDZÇΔ (Ç‹ÇΩǵǃLJ) Ç™åàíËÇ≥ÇÍNjǵÇΩÅBDZÇÍÇ™ÅAMac OS 7.6 Çà GM ÉoÅ[ÉWÉáÉìÇ…ëgÇ›çûÇ‹ÇÍÇΩ OSL ÇÃÉoÅ[ÉWÉáÉìÇ≈Ç∑ÅB

DZÇÃÉoÅ[ÉWÉáÉìÇÃç≈ëÂÇÃñ‚ëËÇÕÅAǪÇÍÇ™ÉtÉ@ÉbÉgÇ≈ÇÕÇ»Ç≠ÅAìØéûÇ… CFM-68K ÉRÅ[ÉhLJä‹ÇÒÇ≈ǢǻǢDZÇΔÇ≈ǵÇΩ (1.0.2 ǙǪǧÇ≈džǡÇΩDZÇΔÇévÇ¢èoǵǃÇ≠ÇæÇ≥Ç¢)ÅBǵǩǵÅADZÇÃDZÇΔÇ™Ç∑ÇÆÇ…ñ‚ëËÇ…Ç»ÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅBÇΔǢǧÇÃLJÅAMac OS 7.6 ÇÕÅACFM-68K Ç…ëŒÇ∑ÇÈÉTÉ|Å[ÉgǻǵDžèoâ◊Ç≥ÇÍÇΩÇΩÇflÇ≈Ç∑ÅBé¿ç€ÅA7.6 ÇÕåªç›Çà CFM-68K ã@î\ägí£ÇÃë∂ç›Çñæé¶ìIÇ…É`ÉFÉbÉNǵǃñ≥å¯Ç…ǵÅAÉVÉXÉeÉÄÇÃDZÇÃÉoÅ[ÉWÉáÉìÇΔÇΔLJDž CFM-68K Ç™ÉçÅ[ÉhÇ≥ÇÍÇÈÇÃÇñWÇ∞Ç‹Ç∑ÅBCFM-68K Çé¿çsÇ≈ǴǻǢèÍçáÅAÉtÉ@ÉbÉg OSL ÇÕïKóvdžÇËÇ‹ÇπÇÒÅB


êVÇΩÇ»äÛñ]
êîÅXÇÃÉGÉìÉWÉjÉAÇÃìwóÕÇÃåãâ ÅAOSL ÇÕÇÊÇËìOíÍìIÇ…èëÇ´ä∑ǶÇÁÇÍÅAGestalt ÉZÉåÉNÉ^ÇΔÉäÉ\Å[ÉXÉtÉ@ÉCÉãÇÃÉoÉOÇ™óºï˚ÇΔLJÉtÉBÉbÉNÉXÇ≥ÇÍNjǵÇΩÅBÉeÉXÉgÇ‡äÆ‡¯Ç…èIóπǵÅAñ‚ëËÇÕâè¡Ç≥ÇÍNjǵÇΩÅBDZÇÃÇΔÇ´ÅAOSL ÇÕÉoÅ[ÉWÉáÉì 1.2 ÇΔǵǃÉäÉäÅ[ÉXÇ≥ÇÍNjǵÇΩÅBDZÇÃÉoÅ[ÉWÉáÉìÇÕÅAåªç›ÇÃÇΔDZÇÎÇŸÇ⁄ó\ëzí ÇËÇ…ìÆçÏǵǃǢNjÇ∑ÅBåªç›Ç≈LJ whose ÉNÉçÅ[ÉYÇÃâåàÇ…ä÷òAÇ∑ÇÈÉoÉOÇ™écÇ≥ÇÍǃǢNjÇ∑Ç™ÅAǪÇÍÇÁÇÕívñΩìIǻLJÇÃÇ≈ÇÕÇ»Ç≠ÅAÉfÉxÉçÉbÉpÇ™óeà’Ç…âÒîÇ≈Ç´ÇÈLJÇÃÇ≈Ç∑ (ÅuDZÇÍÇ‹Ç≈Ç…ïÒçêÇ≥ÇÍǃǢÇÈÉoÉOÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅB


ÇÕǡǴÇËÇÌǩǡǃǢÇÈDZÇΔ
DZDZNjÇ≈ÇÃê‡ñæÇì«ÇÒÇ≈Ç≠ÇÈÇΔÅAì™Ç™ç¨óêǵǃÅA"ǪǧÇ∑ÇÈÇΔÅAàÍëÃÇ«ÇÃÉoÅ[ÉWÉáÉìÇégǶnjǢǢÇÃÇæ" ÇΔǢǧã^ñ‚Ç™ÇÌǢǃÇ≠ÇÈÇÕÇ∏Ç≈Ç∑ÅBåªéûì_Åi1998îN10åéÅjÇ≈ÅADZÇÃéøñ‚Ç…ëŒÇ∑ÇÈìöǶÇÕéüÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB

Object Support Library ÇÃÉoÅ[ÉWÉáÉì 1.2 ÇégópÇ∑ÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅB

Mac OS 8.0 Ç≈ÇÕÅAObject Support Library ÉoÅ[ÉWÉáÉì 1.2 Ç™ÉVÉXÉeÉÄÉtÉ@ÉCÉãÇ…ëgÇ›çûÇ‹ÇÍǃǢNjÇ∑ÅBOSL ÇÕç°å„LJÉVÉXÉeÉÄÉtÉ@ÉCÉãÇ…ëgÇ›çûÇ‹ÇÍÅAã@î\ägí£ÉtÉHÉãÉ_Ç… OSL ÇÃå√Ç¢ÉoÅ[ÉWÉáÉìÇ™ë∂ç›ÇµÇƒÇ‡ÅAǪÇÍÇÕÉçÅ[ÉhÇ≥ÇÍÇ‹ÇπÇÒÅB Mac OS 8.0 à»ëOÇ≈ÉoÅ[ÉWÉáÉì 1.2 Ç™ì¸éËÇ≈ǴǻǢèÍçáÇÕÅA1.1.8ÅiÇ‹ÇΩÇÕǪÇÃéOǬéqÇÃíÌÇ≈džÇÈÉoÅ[ÉWÉáÉì 1.0.2 Ç‹ÇΩÇÕ 1.1ÅjÇégǡǃÇ≠ÇæÇ≥Ç¢ÅBÇΩÇæÇµÅADZÇÍÇÁÇÃå√Ç¢ÉoÅ[ÉWÉáÉìÇ™ÉtÉ@ÉbÉgÇ≈ÇÕǻǢì_Ç…íçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÃÇΩÇflÅADZÇÍÇÁÇÃÉoÅ[ÉWÉáÉìÇÕ CFM-68K ÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔÇΔLJDžê≥èÌÇ…ìÆçÏǵǻǢÇÕÇ∏Ç≈Ç∑ÅBCFM-68K ÉAÉvÉäÉPÅ[ÉVÉáÉìÇé¿çsÇ∑ÇÈïKóvǙdžÇÈèÍçáÇÕÅAÉoÅ[ÉWÉáÉì 1.2 ÇégÇÌÇ»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅB

ǪǵǃÅAìñëRÇÃDZÇΔÇ≈Ç∑Ç™ÅAOSL ÇÃÇÊÇËêVǵǢÉoÅ[ÉWÉáÉìÇ™ÉäÉäÅ[ÉXÇ≥ÇÍÇΩèÍçáÇÕÅAǪÇÍÇÉCÉìÉXÉgÅ[ÉãÇ∑ÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅB

OSL ÇÃóöó
ÉoÅ[ÉWÉáÉì ÉXÉeÅ[É^ÉX
1.0.2 ç≈èâÇà PowerPC ã§óLÉâÉCÉuÉâÉäÅBÉäÉ\Å[ÉXÉtÉ@ÉCÉãÇÃÉoÉOdžÇËÅB
1.0.4 êVǵǢÉRÅ[ÉhÉxÅ[ÉXÅBGestalt ÉZÉåÉNÉ^ǻǵÅBǪÇÃëºÇÃÉoÉOdžÇËÅB
1.1 é¿ç€Ç…ÇÕ 1.0.2 ÇΔNjǡÇΩÇ≠ìØólÅBêVǵǢÉNÉäÉGÅ[É^ÉRÅ[ÉhÇä‹ÇfiÇæÇØÅB
1.1.1 1.0.4 ÇÃëoéqÇÃåZ (ǧÇËìÒǬ)
1.1.2/1.1.3 àÍî Ç…ÇÕÉäÉäÅ[ÉXÇ≥ÇÍǻǩǡÇΩÉoÅ[ÉWÉáÉìÅBDZÇÃÇΩÇflñ≥éãǵǃÇÊÇ¢ÅB
1.1.4 ê≥èÌÇ…ìÆçÏǵǻǢÅBÇΩÇæÇµÅAOS SDK CD Ç…é˚ò^Ç≥ÇÍǃÉäÉäÅ[ÉXÇ≥ÇÍÇΩÅB
1.1.6 Harmony f3 ÇΔÇΔLJDžèoâ◊Ç≥ÇÍÇΩÉoÅ[ÉWÉáÉì
1.1.8 Mac OS 7.6 ÇΔÇΔLJDžèoâ◊Ç≥ÇÍÇΩÉoÅ[ÉWÉáÉì (1.0.2 ÇÃLJǧàÍǬÇÃÉNÉçÅ[Éì)
1.2 CFM-68K 4.0 ÇΔÇΔLJDžèoâ◊Ç≥ÇÍÇΩÉoÅ[ÉWÉáÉìÅBÉNÉâÉbÉVÉÖÇÃå¥àˆÇΔÇ»ÇÈÇ∑Ç◊ǃÇÃÉoÉOÇ™ÉtÉBÉbÉNÉXÇ≥ÇÍǃǢÇÈÅB

DZÇÍÇ‹Ç≈Ç…ïÒçêÇ≥ÇÍǃǢÇÈ OSL ÇÃÉoÉO
OSL Ç…ÇÕåªç›Ç≈LJǢÇ≠ǬǩÇÃÉoÉOÇ™écÇ≥ÇÍǃǢNjÇ∑ÅBÇΩÇæÇµÅADZÇÍÇÁÇÃÉoÉOÇ…ÇÕâÒîï˚ñ@ǙdžÇËÇ‹Ç∑ÅB


î‰ärä÷êîÇ…ìnÇ≥ÇÍÇÈÉAÉìÉçÉbÉNÉnÉìÉhÉã
whose ÉNÉçÅ[ÉYÇâåàÇ∑ÇÈÇΔÇ´Ç…égópÇ∑ÇÈÇΩÇflÅAÉIÉuÉWÉFÉNÉgî‰ärä÷êîÇÉCÉìÉXÉgÅ[ÉãÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBî‰ärä÷êîÇåƒÇ—èoÇ∑ÇΔÇ´ÅAOSL ÇÕ 2 ǬÇà AEDescs Ç…É|ÉCÉìÉ^ÇìnǵNjÇ∑ÅBàÍǬÇÕî‰ärÇ≥ÇÍÇÈÉIÉuÉWÉFÉNÉgÇ…ëŒÇ∑ÇÈLJÇÃÇ≈ÅALJǧàÍǬÇÕǪÇÃÉIÉuÉWÉFÉNÉgÇΔî‰ärÇ∑ÇÈÉIÉuÉWÉFÉNÉgÇ‹ÇΩÇÕãLèqéqÇ…ëŒÇ∑ÇÈLJÇÃÇ≈Ç∑ÅB

DZDZÇ≈ÅAÉpÉâÉÅÅ[É^Ç…ÇÊǡǃÉ|ÉCÉìÉgÇ≥ÇÍÇÈãLèqéqÉåÉRÅ[ÉhÇä‹ÇfiÉÅÉÇÉäÉuÉçÉbÉNÇ™ÉçÉbÉNÇ≥ÇÍǃǢǻǢçƒîzíuâ¬î\Ç»ÉuÉçÉbÉNÇ…îzíuÇ≥ÇÍÅAî‰ärä÷êîÇ™åƒÇ—èoÇ≥ÇÍÇΩå„Ç≈à⁄ìÆÇ∑ÇÈâ¬î\ê´Ç™Ç†ÇÈÇΔǢǧñ‚ëËÇ™î≠ê∂ǵNjÇ∑ÅB

DZÇÃñ‚ëËÇâÒîÇ∑ÇÈÇ…ÇÕÅAÉIÉuÉWÉFÉNÉgî‰ärÉãÅ[É`ÉìÇ…ì¸Ç¡ÇΩíºå„Ç…ÅAÉpÉâÉÅÅ[É^Ç…ÇÊǡǃÉ|ÉCÉìÉgÇ≥ÇÍÇÈãLèqéqÉåÉRÅ[ÉhÇÉçÅ[ÉJÉãïœêîÇ…ÉRÉsÅ[ǵNjÇ∑ÅB

ÉNÉâÉVÉbÉN 68K ÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔÉZÉOÉÅÉìÉgÉçÅ[É_Ç™ëŒè€ÇΔÇ»ÇÈÇΔÅADZÇÃñ‚ëËÇÕÇÊÇËï°éGÇ…Ç»ÇËÇ‹Ç∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇÉrÉãÉhÇ∑ÇÈÇΔÇ´Ç…ÅAî‰ärä÷êîÇΔ AEObjectSupportLib.o ÉâÉCÉuÉâÉäÇ™ìØÇ∂ÉZÉOÉÅÉìÉgì‡Ç…ǻǢèÍçáÅAOSL Çä‹ÇfiÉZÉOÉÅÉìÉgÇ™Ç∑Ç≈Ç…ÉçÅ[ÉhÇ≥ÇÍǃǢǻǢÇΔÅAãLèqéqÉåÉRÅ[ÉhÇ™ÉRÉsÅ[Ç≥ÇÍÇÈëOÇ…à⁄ìÆÇµÇƒÇµÇ‹Ç§â¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅB

DZÇÃñ‚ëËÇâÒîÇ∑ÇÈÇ…ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÉrÉãÉhÇ∑ÇÈÇΔÇ´Ç…ÅAî‰ärä÷êîÇΔ AEObjectSupportLib.o ÉâÉCÉuÉâÉäÇ™ìØÇ∂ÉZÉOÉÅÉìÉgì‡Ç…džÇÈDZÇΔÇämîFǵNjÇ∑ÅB


whose ÉNÉçÅ[ÉYÇÃâåàíÜÇ…î≠ê∂Ç∑ÇÈÉIÉuÉWÉFÉNÉgî‰ärÉRÅ[ÉãÉoÉbÉNä÷êîÇÃÉÅÉÇÉäÉäÅ[ÉN
ÉIÉuÉWÉFÉNÉgéwíËéqÇ…ä‹Ç‹ÇÍÇÈ whose ÉNÉçÅ[ÉYÇâåàǵǃǢÇÈä‘Ç…ÅAOSL Ç™ÉAÉvÉäÉPÅ[ÉVÉáÉìãüããÇÃî‰ärÉRÅ[ÉãÉoÉbÉNä÷êîÇåƒÇ—èoÇ∑ÇΔÇ´ÅAÉÅÉÇÉäÉäÅ[ÉNÇ™î≠ê∂ǵNjÇ∑ÅBOSL Ç™î‰ärÉRÅ[ÉãÉoÉbÉNä÷êîÇ…ÉIÉuÉWÉFÉNÉgÇìnÇ∑ÇΔÇ´ÅAǪÇÍÇÁÇÃÉIÉuÉWÉFÉNÉgÇÕǵnjǵnjÅAÉIÉuÉWÉFÉNÉgÉAÉNÉZÉbÉTä÷êîÇ…ÇÊǡǃçÏê¨Ç≥ÇÍÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìíËã`ÇÃÉgÅ[ÉNÉìÇΔÇ»ÇËÇ‹Ç∑ÅB

ñ‚ëËÇÕÅAOSL Ç™ AEDisposeToken Ç≈ÇÕÇ»Ç≠ÅADZÇÍÇÁÇÃÉgÅ[ÉNÉìÉIÉuÉWÉFÉNÉgè„Çà AEDisposeDesc ÇåƒÇ—èoÇ∑DZÇΔÇ≈Ç∑ÅBDZÇÍÇ™ÉÅÉÇÉäÉäÅ[ÉNÇÃå¥àˆÇ…Ç»ÇËÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÉgÅ[ÉNÉìÇ…ÉAÉ^ÉbÉ`ǵÇΩÉfÅ[É^Ç™ìKêÿÇ…èàóùÇ≥ÇÍÇ»Ç≠Ç»ÇËÇ‹Ç∑ÅB

DZÇÃñ‚ëËÇÕÅAëOèqÇÃÉAÉìÉçÉbÉNÉnÉìÉhÉãÇÃÉoÉOÇ…ÇÊǡǃÇ≥ÇÁÇ…ï°éGǻLJÇÃÇ…Ç»ÇËÇ‹Ç∑ÅBDZÇÃñ‚ëËÇâÒîÇ∑ÇÈÇ…ÇÕÅAÉAÉìÉçÉbÉNÉnÉìÉhÉãÇÃÉoÉOÉtÉBÉbÉNÉXÇÉgÅ[ÉNÉìÇÃèàóùÇΔëgÇ›çáÇÌÇπÇ‹Ç∑ÅBéüÇÃã^éóÉRÅ[ÉhÇÕÅADZÇÃñ‚ëËÇ®ÇÊÇ—ëOèqÇÃÉAÉìÉçÉbÉNÉnÉìÉhÉãÇÃñ‚ëËÇ…ëŒÇ∑ÇÈëŒèàï˚ñ@Çé¶ÇµÇƒÇ¢Ç‹Ç∑ÅB

Pascal åæåÍÉoÅ[ÉWÉáÉì
function  MyCompareObjects (comparisonOperator:             DescType;
                            (CONST) VAR theObject:          AEDesc;
                            (CONST) VAR objOrDescToCompare: AEDesc;
                            VAR compareResult:              boolean): OSErr;
var
    theObjectCopy             : AEDesc;
    objOrDescToCompareCopy    : AEDesc;

begin
    { OSL Ç™ãLèqéqÇçƒîzíuâ¬î\Ç»ÉuÉçÉbÉNÇ…É|ÉCÉìÉgǵǃǢÇÈÇΩÇflÅA
     Ç‹Ç∏ãLèqéqÇÃÉRÉsÅ[ÇçsǧÅBDZÇÃçƒîzíuâ¬î\Ç»ÉuÉçÉbÉNÇÕÅAà»â∫ÇÃ
     ÉRÅ[ÉhÇ…ÇÊǡǃà⁄ìÆÇ≥ÇÍÇÈâ¬î\ê´Ç™Ç†ÇÈ }
    theObjectCopy := theObject;
    objOrDescToCompareCopy := objOrDescToCompare;

    { à»â∫ÇÃÉIÉuÉWÉFÉNÉgÇèàóùÇ∑ÇÈïKóvǙdžÇÈÇΩÇflÅA
    ÉIÉäÉWÉiÉãÇÃãLèqéqÇ null ãLèqéqÇ…ê›íËÇ∑ÇÈ }
    SetToNullDesc (theObject);
    SetToNullDesc (objOrDescToCompare);

    { î‰ärÇçsǧÉRÅ[ÉhÇÕDZDZDžíuÇ≠ }
    MyCompareObjects := DoTheComparison (comparisonOperator, theObjectCopy,
                                   objOrDescToCompareCopy, compareResult);

    { DZÇÍÇÁÇÃãLèqéqÇÕíËêîÇ≈džÇÈÇΔëOíÒÇ≥ÇÍÇÈÇ™ÅAOSL ÇÕåàǵǃ
    ÉgÅ[ÉNÉìÉRÅ[ÉãÉoÉbÉNä÷êîÇåƒÇ—èoÇ≥ǻǢÅBDZÇÃÇΩÇflÅAãLèqéqÇÃÇ¢Ç∏ÇÍǩǙ
    ÉAÉvÉäÉPÅ[ÉVÉáÉìíËã`ÇÃÉgÅ[ÉNÉìÇ≈džÇÈèÍçáÅAǪÇÍÇÁÇÕDZDZÇ≈èàóùÇ∑ÇÈ }
    MyDisposeToken (theObjectCopy);
    MyDisposeToken (objOrDescToCompareCopy);
end;



C åæåÍÉoÅ[ÉWÉáÉì
OSErr MyCompareObjects (DescType        comparisonOperator,
                        const AEDesc    *theObject,
                        const AEDesc    *objOrDescToCompare,
                        Boolean         *compareResult)
{
    OSErr anErr;
    AEDesc theObjectCopy;
    AEDesc objOrDescToCompareCopy;

    theObjectCopy = *theObject;
    objOrDescToCompareCopy = *objOrDescToCompare;

    SetToNullDesc (const_cast (theObject));
    SetToNullDesc (const_cast (objOrDescToCompare));

    anErr = DoTheComparison (comparisonOperator, &theObjectCopy,
                             &objOrDescToCompareCopy, &compareResult);

    MyDisposeToken (&theObjectCopy);
    MyDisposeToken (&objOrDescToCompareCopy);
}



whose ÉNÉçÅ[ÉYÇÃâåàíÜÇ…É}Å[ÉLÉìÉOÉRÅ[ÉãÉoÉbÉNä÷êîÇ≈î≠ê∂Ç∑ÇÈÉÅÉÇÉäÉäÅ[ÉN
ÉIÉuÉWÉFÉNÉgéwíËéqÇ…ä‹Ç‹ÇÍÇÈ whose ÉNÉçÅ[ÉYÇèàóùǵǃǢÇÈä‘Ç…ÅAOSL Ç™ÉAÉvÉäÉPÅ[ÉVÉáÉìãüããÇÃÉ}Å[ÉLÉìÉOä÷êîÇåƒÇ—èoÇ∑ÇΔÇ´ÅAÉÅÉÇÉäÉäÅ[ÉNÇ™î≠ê∂ǵNjÇ∑ÅB

ÉIÉuÉWÉFÉNÉgéwíËéqÇâåàÇ∑ÇÈÉvÉçÉZÉXÇ≈ÅAãLèqéqÉåÉRÅ[ÉhÇ™çÏê¨Ç≥ÇÍÅAmark token ÉRÅ[ÉãÉoÉbÉNä÷êî (containerToken ÉpÉâÉÅÅ[É^ÇΔǵǃ) ÇΔÉIÉuÉWÉFÉNÉgÉ}Å[ÉLÉìÉOÉRÅ[ÉãÉoÉbÉNä÷êî (theToken ÉpÉâÉÅÅ[É^ÇΔǵǃ) Ç…ìnÇ≥ÇÍÇ‹Ç∑ÅBñ‚ëËÇÕÅAOSL Ç™ÅAAEDisposeToken Ç‹ÇΩÇÕ AEDisposeDesc ÇÃÇ¢Ç∏ÇÍÇ…ÇÊǡǃLJÅADZÇÃãLèqéqÇèàóùǵǻǢDZÇΔÇ≈Ç∑ÅB

DZÇÃñ‚ëËÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™éÛÇØéÊÇ¡ÇΩÇ∑Ç◊ǃÇà whose ÉNÉçÅ[ÉYÇÉAÉvÉäÉPÅ[ÉVÉáÉìé©êgÇ…âåàÇ≥ÇπÇÈDZÇΔÇ≈âÒîÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBDZÇÃï˚ñ@Ç…ÇÊÇËÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕ AEResolve ÇÃåƒÇ—èoǵÇîÇØÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBDZÇÍÇÕÅAì¡Ç…àÍî ìIÇ»É^ÉCÉvÇÃÉIÉuÉWÉFÉNÉgéwíËéqÇ…ÇΔǡǃÇÕçDìsçáÇ≈Ç∑ÅBǵǩǵÅAÉRÅ[ÉãÉoÉbÉNä÷êîÇégópÇ∑ÇÈ OSL Ç…ÇÊǡǃÇÊÇËÇÊÇ≠èàóùÇ≥ÇÍÇÈ "àÍî ìIÇ≈ǻǢ" ÉIÉuÉWÉFÉNÉgéwíËéqÇéÛÇØéÊÇÈâ¬î\ê´Ç‡Ç†ÇËÇ‹Ç∑ÅBDZÇÃÇÊǧǻÉIÉuÉWÉFÉNÉgéwíËéqÇé©ï™é©êgÇ≈éÊÇËàµÇ§èÍçáÇÕÅAëÂïîï™Çà OSL Çï°êªÇ∑ÇÈDZÇΔÇ≈èIÇÌǡǃǵNjǢNjÇ∑ÅB

çKǢDžLJÅADZÇÃñ‚ëËÇÃâÒîï˚ñ@ÇÕî‰ärìIíPèÉÇ≈Ç∑ÅBãLèqéqÉåÉRÅ[ÉhÇÉIÉuÉWÉFÉNÉgÉ}Å[ÉLÉìÉOä÷êîÇÃññîˆÇ≈èàóùǵÅAǪÇÍÇ null ãLèqéqÇ…ê›íËǵNjÇ∑ÅBDZÇÃÉoÉOÇ™ OSL ÇÃè´óàÇÃÉäÉäÅ[ÉXÇ≈ÉtÉBÉbÉNÉXÇ≥ÇÍǃLJÅADZÇÃâÒîï˚ñ@Ç…ÇÊÇËì¡Ç…ñ‚ëËÇ™î≠ê∂Ç∑ÇÈDZÇΔÇÕǻǢÇÕÇ∏Ç≈Ç∑ÅBÇΔǢǧÇÃLJÅAnull ãLèqéqÉåÉRÅ[ÉhÇÃèàóùÇÕèÌÇ…à¿ëSÇ≈džÇÈÇΩÇflÇ≈Ç∑ÅB

éüÇ…ÅAãLèqéqÉåÉRÅ[ÉhÇ null ãLèqéqÇ…ê›íËÇ∑ÇÈä÷êîÇé¶ÇµÇ‹Ç∑ÅB
void SetToNullDesc (AEDesc *theObject)
{
        theObject->descriptorType = typeNull;
        theObject->dataHandle = nil;
}


éQçlï∂å£
  • Technote 1083: Code Fragment Manager ÉxÅ[ÉXÇÃã§óLÉâÉCÉuÉâÉäÇ÷ÇÃé„Ç¢ÉäÉìÉN (Weak-link)


DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÃÉoÅ[ÉWÉáÉìóöó
1998îN2åé - ÉeÉNÉjÉJÉãÉmÅ[Ég 1095 ÇΔǵǃî≠çs
1998îN10åé - OSL ÇÃÉoÅ[ÉWÉáÉìóöóÇçXêVÅAC ÇÃÉTÉìÉvÉãÉRÅ[ÉhÇÃÉoÉOÇèCê≥